//
//  CHDropViewController.h
//  CHDropViewDemo
//
//  Created by hyc on 16/9/7.
//  Copyright © 2016年 hyc. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface CHDropViewController : UIViewController

#define CH_WIDTH self.view.frame.size.width
#define CH_HEIGHT self.view.frame.size.height

#pragma mark - 一级下拉菜单
//设置一级菜单的行数
@property(nonatomic,strong)NSInteger (^numberOfTopCell)(UITableView *tableView);
//设置下拉菜单的cell，类似于tableView的用法，cell可以自定义
@property(nonatomic,strong)UITableViewCell* (^topCell)(UITableView *tableView ,NSInteger row);
//cell的点击
@property(nonatomic,strong)void (^selectTopCell)(NSInteger row);
//cell的点击，返回多选单选信息
@property(nonatomic,strong)void (^selectTopCellExt)(NSInteger row,NSArray *singleSelectArr,NSArray *mutiSelectArr);
//滚动时，就调用该方法。任何offset值改变都调用该huidiao。即滚动过程中，调用多次
@property(nonatomic,strong)void (^topViewDidScroll)(UIScrollView *scrollView);
//每一行的高度
@property(nonatomic,strong)CGFloat (^topCellHeight)(UITableView *tableView,NSInteger row);

#pragma mark - 一级下拉菜单
//设置一级菜单的行数
@property(nonatomic,strong)NSInteger (^numberOfSecCell)(UITableView *tableView);
//设置下拉菜单的cell，类似于tableView的用法，cell可以自定义
@property(nonatomic,strong)UITableViewCell* (^secCell)(UITableView *tableView ,NSInteger row);
//cell的点击
@property(nonatomic,strong)void (^selectSecCell)(NSInteger row);
//cell的点击，返回多选单选信息
@property(nonatomic,strong)void (^selectSecCellExt)(NSInteger row,NSArray *singleSelectArr,NSArray *mutiSelectArr);
//滚动时，就调用该方法。任何offset值改变都调用该huidiao。即滚动过程中，调用多次
@property(nonatomic,strong)void (^secViewDidScroll)(UIScrollView *scrollView);
//每一行的高度
@property(nonatomic,strong)CGFloat (^secCellHeight)(UITableView *tableView,NSInteger row);

#pragma mark - 刷新
//一级菜单刷新
- (void)reloadTopData;
//二级菜单刷新
- (void)reloadSecData;
//整体刷新
- (void)reloadData;

#pragma mark - 颜色
//空白背景颜色
@property(nonatomic,strong)UIColor *bgColor;
//一级菜单背景颜色
@property(nonatomic,strong)UIColor *topBgColor;
//二级菜单背景颜色
@property(nonatomic,strong)UIColor *secBgColor;
//一级菜单，单元颜色(这里是统一设置，也可以在cell里单独设置)
@property(nonatomic,strong)UIColor *topCellColor;
//二级菜单，单元颜色(这里是统一设置，也可以在cell里单独设置)
@property(nonatomic,strong)UIColor *secCellColor;
//一级菜单，单元选中的颜色(这里是统一设置，也可以在cell里单独设置)
@property(nonatomic,strong)UIColor *topSelectCellColor;
//二级菜单，单元选中的颜色(这里是统一设置，也可以在cell里单独设置)
@property(nonatomic,strong)UIColor *secSelectCellColor;

#pragma mark - 菜单的frame
//一级菜单的frame
@property(nonatomic,assign)CGRect topViewFrame;
//二级菜单的frame
@property(nonatomic,assign)CGRect secViewFrame;

#pragma mark - 默认选中某个cell
//这两方法会在reloadData后失效
@property(nonatomic,assign)NSInteger topViewSelectCellAtRow;
@property(nonatomic,assign)NSInteger secViewSelectCellAtRow;

#pragma mark - 其他
//一级菜单是否可以反弹
@property(nonatomic,assign)BOOL topBounces;
//二级菜单是否可以反弹
@property(nonatomic,assign)BOOL secBounces;
//一级菜单是否自适应列表高度
@property(nonatomic,assign)BOOL topViewAutoSize;
//二级菜单是否自适应列表高度
@property(nonatomic,assign)BOOL secViewAutoSize;
//是否自适应列表高度
@property(nonatomic,assign)BOOL viewAutoSize;
//保持一级与二级菜单底部对齐（即高度相等）,主要是应用于自适应高度的场合。
@property(nonatomic,assign)BOOL keepTopAndSecAlignBottom;
//设置为为push模式
@property(nonatomic,assign)BOOL pushStyle;
//隐藏一级
@property(nonatomic,assign)BOOL topHidden;
//隐藏二级
@property(nonatomic,assign)BOOL secHidden;

@end
